OstreeRepoCommitModifierFlags flags;
OstreeRepoCommitFilter filter;
gpointer user_data;
+ GDestroyNotify destroy_notify;
};
static OstreeRepoCommitFilterResult
* @flags: Control options for filter
* @commit_filter: (allow-none): Function that can inspect individual files
* @user_data: (allow-none): User data
+ * @destroy_notify: A #GDestroyNotify
*
* Returns: (transfer full): A new commit modifier.
*/
OstreeRepoCommitModifier *
ostree_repo_commit_modifier_new (OstreeRepoCommitModifierFlags flags,
OstreeRepoCommitFilter commit_filter,
- gpointer user_data)
+ gpointer user_data,
+ GDestroyNotify destroy_notify)
{
OstreeRepoCommitModifier *modifier = g_new0 (OstreeRepoCommitModifier, 1);
modifier->flags = flags;
modifier->filter = commit_filter;
modifier->user_data = user_data;
+ modifier->destroy_notify = destroy_notify;
return modifier;
}
if (!g_atomic_int_dec_and_test (&modifier->refcount))
return;
+ if (modifier->destroy_notify)
+ modifier->destroy_notify (modifier->user_data);
+
g_free (modifier);
return;
}
OstreeRepoCommitModifier *ostree_repo_commit_modifier_new (OstreeRepoCommitModifierFlags flags,
OstreeRepoCommitFilter commit_filter,
- gpointer user_data);
+ gpointer user_data,
+ GDestroyNotify destroy_notify);
GType ostree_repo_commit_modifier_get_type (void);
OstreeRepoCommitModifierFlags flags = 0;
if (opt_no_xattrs)
flags |= OSTREE_REPO_COMMIT_MODIFIER_FLAGS_SKIP_XATTRS;
- modifier = ostree_repo_commit_modifier_new (flags, commit_filter, mode_adds);
+ modifier = ostree_repo_commit_modifier_new (flags, commit_filter, mode_adds, NULL);
}
if (!ostree_repo_resolve_rev (repo, opt_branch, TRUE, &parent, error))